perm filename ERRATA.TXT[TEX,DEK]7 blob sn#524722 filedate 1980-07-26 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	This is a list of all errors in the September 1978 TEX user manual that
C00008 00003	Extensions to TEX made since the November printing of the manual:
C00013 00004	Corrections noted since the November 1978 printing:
C00018 00005	Important changes made to TEX on February 25, 1979:
C00022 00006	New extensions to TEX subsequent to the April printing of the manual.
C00026 00007	Changes made subsequent to the Digital Press edition of the manual (Dec 1979)
C00033 00008	TEX 80: the last extensions to TEX before 1990
C00049 ENDMK
C⊗;
This is a list of all errors in the September 1978 TEX user manual that
were known on November 4, 1978. It also includes a few things that were
omitted in September. All these changes (and only these) have been
incorporated into the November 1978 manual.

Title page, change date to "November 1978 (second printing)" and change 
"draft" to "drafts" in the first line of the footnote.

Page 26, line 4, delete "of the second paragraph".

Page 29, line 13, change "later.)" to "later. A list of control sequences for
special symbols appears in Appendix F.)

Page 40, line 15
(one centimeter equals 26.600 Didot points)

Page 32, line 18, change "11" to "12".

Page 59, line 4, insert a ")" after this line.

Page 61, line 28, insert a "$" before the pound sterling sign

Page 61, line 30, change ", and" to ", ``$\$$'', and"

Page 82, line 13, append this to the paragraph: "Another case is a formula
like n/log n, where a negative thin space has been inserted after the /.)".

Page 102, line 6, append this to the paragraph: "The control sequences
\vcenter and \vtop are also useful for box positioning (see Chapter 26)."

Page 106, line 17, change "instead of ``$\ctr{#}$''" to "instead
of ``\ctr{$#$}''".

Page 106, last three lines, change "processed; you might ... appropriate \def."
to "processed.".

Page 135, change the first 7 lines to the following:

  based only on the current style, regardless of the sizes of numerator and
  denominator.

    / \vcenter \
  *<            >{<vlist>}      Append a centered or top-adjusted box.
    \   \vtop  /
  The specified vertical list is constructed in restricted vertical mode, then
  it is \vjusted and the resulting box is moved up or down so that (\vcenter)
  it is centered vertically just as large delimiters are, or (\vtop) the
  baseline of the topmost box in the vertical list coincides with the baseline
  of the formula.  Then TEX resumes its activities in math mode.

Page 158, line 16, change ". (We" to ".\xskip (We".

Page 158, new paragraph inserted before the 4th-last line on this page:
   * Within a paragraph, type ``\xskip'' before and after parenthesized
  sentences.  (For example, there is an \xskip in the paragraph you are now 
  reading, and in algstep E1 above.)

(The convention just explained has also been introduced into the entire TEX
manual.)

Page 159, replace last two paragraphs by one paragraph, to wit:
     If the exercise contains a ``hint'' within a paragraph, you type
  ``\xskip[{\sl Hint:} ''; as usual, there should be no space before \xskip.

Page 162, line 4, change "Addison-Wesley's" to "the publisher's".

Page 165, line 15, change "4.5" to "4.625".

Page 165, line 23, change "4" to "4.25".

Page 182, line 6, change "or XYZages" to "XYZages, or XYZest"

Page 182, lines 14 and 15, change "-xe, or -xye, where x and y" to
	"-Xe, or -XYe, where X and Y"

Page 182, line 18, new sentence appended to this paragraph:
	"Similarly, final syllables of the form -Xed or -XYed (except -ized)
	are also disregarded."

Page 185, line 22, delete "guess-work"

Page 186, line 7, change "prob-a-bil-ity" to "prob-abil-ity".

Page 187, index entry for Bibliographic..., change "14" to "15".

Page 189, index entry for \deg, add page 164.

Page 195, delete 15th line in left-hand column.

Page 195, index entry for \spose, add page 39.

Page 196, index entry for \vcenter, add page 102.

Page 196, new index entry:
  \vtop (make <vlist> box using top baseline), 102, 135.

Page 196, index entry for \xskip, change "159" to "158--160".

Page 196, index entries for \yskip and \yyskip, change "158--159" and "158"
to "159".

Page 197, index entry for \$, add page 61.

Page 198, the TEX logo is too small, each time it appears on this page.

Extensions to TEX made since the November printing of the manual:

1. Several new <dimenparam>s have joined \hsize, \vsize, \topbaseline, etc.,
namely \lineskiplimit, \mathsurround, and \varunit.
By typing "\lineskiplimit <dimen>" you specify a dimension p such that
\lineskip glue is used as the interline glue if and only if x-h-d < p, in
the notation of Chapter 15.
By typing "\mathsurround <dimen>" you specify an amount
of blank space to be inserted at the left and right of any formula
embedded in text (i.e., formulas delimited by $ and $).
By typing "\varunit <dimen>" you specify the current value of a
variable-size unit; the code "vu" denotes such relative units in a <dimen>
specification. For example, after you define "\varunit 2pt", a <dimen>
of "7vu" would stand for 14 points. When TEX begins, the values of
\lineskiplimit, \mathsurround, and \varunit are 0pt,
0pt, and 1pt, respectively.

2. There is a new option to \advcount: If you type "\advcount <digit> by
<number>" the specified counter is increased by the specified number. (When
the "by" option is omitted, the counter is increased by plus-or-minus one as
presently.)  For example, "\advcount 0 by - \count 1" subtracts counter 1 from
counter 0.

3. The control sequence \unskip can be used in horizontal mode (or restricted
horizontal mode) to delete one glob of glue, if this glue was the last item
added to the horizontal list. The main use of this is to remove an unwanted
space that may have just appeared. For example, in a macro expansion the string
"#1\unskip" denotes parameter #1 with a final blank space (or other glue)
removed, if #1 ends with a blank space (or other glue).

4. Typing "\uppercase{<token list>}" in horizontal mode will change all
lower-case letters of the token list into upper case. (But not the letters of
control sequences.) Similarly, "\lowercase{<token list>}" changes upper-case
letters into lower case.

5. Typing "\xdef<control sequence>{<result text>}" is like
"\gdef<control sequence>{<result text>}" except that definitions in the result
text are expanded. For example, "\xdef\z{\z\y}" will append the current result
text of macro \y to the current result text of macro \z. You can also use \xdef
to expand \counts (as well as \topmarks, etc., in \output routines).

6. The new control sequence \ifpos is analogous to \ifeven; the
\else code is evaluated only if the specified counter is zero or negative.
For example, you can use \ifpos to test if a counter is zero in the
following way:

\def\neg#1{\setcount#1-\count#1}
\def\ifzero#1#2\else#3{\ifpos#1{#3}\else{\neg#1
    \ifpos#1{\neg#1 #3}\else{\neg#1 #2}}}

7. A new unit has been added: "em" equals one quad in the current font.

Corrections noted since the November 1978 printing:

Page 14, line 15, change "TEXes" to "TEXs".

Page 22, line 7, change "reading from, if any." to: "reading. (Don't do this
unless there is such a file.)"

Page 56, line 14, change "n≥2" to "n≥1".

Page 83, line 3, change "it is reclassified as Ord." to "Bins are reclassified
as Ords, from left to right."

Page 101, append a new sentence to the second dangerous bend:
However, all other parameters affecting the setting of the boxed paragraph
(the baseline skip, raggedness, etc.) should be set up {\sl before} the
\hbox par.

Page 114, lines -2 and -1, change "\hjsut" to "\hbx" (thrice)

Page 118, line 23, change "final page is" to "page is finally"

Page 127, line 21, change "final page is" to "page is finally"

Page 138 (AMS version), line -4, move "nother example." one space left.

Page 140, line -13, change "Extra ⊗" to "Extra alignment tab".

Page 145, a new error message:
Warning: Long input line has been broken.
Your input file contained a very long sequence of characters between
carriage returns. TEX arbitrarily broke it after 150 characters.

Page 150, lines 4-6 of the code in answer 23.2 should be:
        \def\lead{ \leaders\hrule\hfill\ }
        \hbox to 4.5in{\ifeven0{\:b\count0\lead\topmark}
          \else{\:b\topmark\lead\count0}}}

Page 152, replace lines -8 and -7 by:
\def\spose#1{\hbox to 0pt{#1\hskip0pt minus10000000pt}}

Page 165, replace the various definitions of "\9" by the single
definition "\def\9{\hskip .5em}", putting the latter just before the definition
of \xskip.

Page 166, in the definition of \dimsectionbegin:
Change "\yyskip" to "\sectionskip".

Page 178, the paragraph of text, delete "But watch out: ... Appendix B.)"

Page 181, line 18, change "word," to "word, and".

Page 184, line 5, add "gold-en".

Page 185, line 21, change "ex-press-ible" to "ex-press-*i*ble".

Page 186, line 11, change "com-put-a-*bil-ity" to "com-put-a*bil-ity".

Pages 187-197, "see" and "see also" are in the wrong font in the AMS
     version (Xerox software bug!)

Page 190, \Fscr entry should be on a line by itself.

Page 190, \halign entry, change "135" to "136".

Page 191, Knuth entry, change "14" to "15".

Page 194, \Qscr entry is not in alphabetic order.

Page 194, add "Roman numerals, 111."

Page 195, Spacing in math formulas,
	tables, 81, 83.

Page 196, last entry in v's has the "vu" entry run into the previous one.

Page 196, entry for \xdef is out of alphabetical order.

Page 197, add: "' (octal number), 34."

Important changes made to TEX on February 25, 1979:

The American Math Society will be printing copies of the TEX manual
with all the above bugs cleaned up, and on this occasion it was the
last chance to change TEX before changes became unwieldy. Thus, Knuth
decided to make a couple improvements, to wit:

1. The control sequences \hjust and \vjust are henceforth changed to \hbox and
\vbox.  (This should cause you little or no trouble with MSs already typed,
simply insert "\def\hjust{\hbox}\def\vjust{\vbox}" at the beginning of your
file.  The basic.tex file already has this, so if you are using basic format
no change is necessary.)

2. The old kludge about \hjust to ...{   } making a boxed paragraph if the
contents were too large has been replaced by a far better convention.
This change will make TEX balk on some manuscripts it previously handled
(e.g. it might now say "Overfull box, 1138.74 points too wide"), but 
only a few changes will really be necessary in your files.

Here are the new rules (replacing the previous rule on page 101):

*  You can also get the effect of paragraphing and line-breaking with
   \hbox, in the following way: If you give the instruction "\hbox par<dimen>",
TEX will use its paragraph line-breaking routine to convert the horizontal list
into one or more lines of the specified width. In this case the \hbox will
actually result in a box formed from a {\sl vertical} list of horizontal lists
of the desired width. The boxed paragraph that you get is not indented.

		For example, the box you are now
		reading was made by typing "\hbox
		par 156pt{For example, the box
		... five lines.}" and TEX broke
		it into five lines.

*  If you specify hanging indentation with such a boxed paragraph, it applies
   to the box and not to the paragraph (if any) containing the box. For
example,

	\hbox par 200pt{\hangindent 10 pt <text >}

will put the specified text into a box 200 points wide, where all lines after
the first are indented by 10 points at the left.

New extensions to TEX subsequent to the April printing of the manual.

\chcode has been extended to give you the opportunity to change TEX's math mode
conversion (Appendix F8). Type "\chcode <ascii code plus '200> ← '<type><char>"
where <type> is 0,1,2,3,4,5,6 for Ord,Op,Bin,Rel,Open,Close,Punct,
respectively, and <char> is the three-octal-digit code. 
For example, a colon (ascii code '072) is normally treated by TEX as Ord'072,
according to Appendix F8. It turns out this is usually a mistake in computer
science papers, it should rather be Rel'072 (treated as a relation box with
respect to spacing in formulas, see Chapter 18.4). You can get this by
typing "\chcode'272←'3072". (Then formulas like "$x:=x+1$" and "f:X\to Y"
will come out properly.)

Three new units of measure are allowed: wd<digit>, ht<digit>, dp<digit>,
denoting the width, height, and depth of a saved box. For example, if you
type "\save5\hbox{k}\hbox to 2 wd5{}" you get an empty box that is twice the
width of the letter k in the current font.

You can use a single letter where TEX expects a <number>; the result is
the ascii code of that letter. For example, the definition of \max in
Appendix B would now more properly be 
	\def\max{\mathop{\char m \char a \char x}}  .
This works only for letters (characters of type 11, see Chapter 7).

The new control sequence \firstmark is allowed in output routines. It
equals the first mark on the page, if any, otherwise it has the
common value of \topmark and \botmark.

The new control sequences \ifvmode, \ifhmode, \ifmmode (analogous to other
\if's) select text based on the current mode.

The new control sequences \hfil, \hfilneg, \hss  are short for
\hskip 0pt plus 100000pt,  \hskip 0pt plus -100000pt,
\hskip 0pt plus 100000pt minus 100000pt, respectively,
and they take less TEX memory space. The vertical analogs are \vfil, \vfilneg,
and \vss. Examples of use: "\vfil\penalty0\vfilneg" specifies an optional
page break, with a "short" page if the break occurs; "\penalty1000\hfilneg\ "
at the end of a paragraph will force the last line of the paragraph to be
right justified (it cancels the paragraph-fill glue supplied automatically by
TEX).

Control sequences of any length are now remembered in full; the seven-letter
truncation mentioned in Chapter 3 no longer happens.

Changes made subsequent to the Digital Press edition of the manual (Dec 1979)

Page 26, line -8, should be
	\hsize 1 in \jpar 1000000 \ragged 1000

Page 27, lines 6 and 7, should be
...trline #1->\hbox to size{\hss #1
				   \hss }
Page 27, lines 14 and 15 are replaced by a single line
	\hbox to size{\hss#1\hss}
Also delete "and followed" from line 19, and change "\hskip etc." on line 21 to
"\hss }".

Page 40, another new unit
	ex	One "xheight" of space in the current font

Page 41, add a new sentence after "devices." on line 13:
If you want to avoid this inflation factor, you can say
"true" just before the unit; e.g., "4truein". (No space after "true".)

Page 95, the two-line displays on this page should have had 2pt extra
space between the lines.

Page 99, line 1, "within" should be "with"

Page 99, line 16, delete the sentence "The dimensions you specify should not
be negative."

Page 102, line 4, change to
\def\TEX{\hbox{\:aT\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}

Page 116, line -3, insert "or \ " before the comma.

Page 120 and 129, add a new entry to the list of internal parameters:
	10	dumplength	500	Appendix X

Page 142, lines 12-14, replace "But be careful: ... just now." by:
Remember that blank space after the name.

Page 152, a new definition of \twoline replaces the old:
\def\twoline#1#2#3{\vbox{\hbox to size{$\quad\dispstyle{#1}$\hfill}
    \vskip#2\hbox to size{\hfill$\dispstyle{#3}\quad$}}}

Page 163, line 16, put "}" after "<last line>\cr"

Page 170, ...The same codes are used for slanted roman fonts like cms10, and
for text italic fonts like cmti10.

Page 171, line 3, "except for \b, \l, \o, \t, \H, and"

Page 171, line 7, change the "except for" list to include underscore, and exclude
the less-than-or-equal-to and greater-than-or-equal-to signs.

Page 171, the typewriter type code now has an underline in position '032,
suitable for making less-than-or-equal-to and greater-than-or-equal-to signs
from < and >. Position '033 is the German ss as on page 170.

Page 172, delete the sentence "The same codes apply...manual)."

Page 172, codes '134, '136, '137 become undefined.

Pages 184-185, delete these words from the exception dictionary (since it turns
out they aren't hyphenated badly after all): harangue, meringue, tongue,
senseless, morgue, torque, unsearchable.

Page 186, new special exceptions: cat-e-go-ry de-vel-op prob-lem-atic
	pro-gram-ming ref-er-enc*e

Page 188r, cmti10, change "172" to "170". Also delete the entry for cmu10.

Page 188r, add pp. 116 and 201 to the Control space entry.

Page 189r, new entry: Dump length, 201.

Page 190l, add pp. 116 and 201 to the Escape space entry.

Page 190l, new entry: \ETC, 201.

Page 190l, delete "Footnotes, 164."  Also insert a new entry,
\footnote (insert footnote), 13, 164, 167.

Page 195r, add p. 102 to the "TEX logo" entry.

Page 196l, new entry: true, 41.

Page 197l, add pp. 116 and 201 to the "\ " (escape space) entry.

Page 201, new features:
13. You can now use up to 64 different fonts (the 64 codes on page 14 give
64 distinct possibilities).

14. New one-character control sequence feature: If you use \chcode to change
the code of a character to type 13 (see page 32 of the manual... previously
code 13 was illegal), TEX will treat it as if it were immediately preceded by
your escape character. For example, suppose you want to type several
left-justified lines in a row. Here's an "easy" way to do this by redefining
code '15 (which is a carriage-return):
	\chcode'15←13 \def
	{\par}
	the first line
	the second line
	\chcode'15←5
The effect will be the same as
	the first line\par
	the second line\par
after which carriage-returns are back to normal again. Similarly, \chcode'40←13
will change spaces into escape-spaces.

Actually there is one important difference between single-character control
sequences and ordinary ones: Blank spaces are not ignored after
single-character control sequences. (TEX is in "state M" after reading them,
cf. pp. 30-31.)

15. \leqno is analogous to \eqno except that the equation number is placed at
the left.

16. If you see "\ETC" at the end of a token list being displayed by TEX
(e.g., an <argument> in an error message), that token list is more than 500
characters long. This number 500 can be changed using \chpar10←<desired value>.

TEX 80: the last extensions to TEX before 1990

Here are some new primitives that seem to enhance the macro-writer's job, as
well as some final cleanups being made to the language before it is frozen
and widely described in PASCAL implementation.

1. \font <fontcode>=<filename>	AN INCOMPATIBLE CHANGE!
(Allowed in any mode.) This should precede your first use of that font code.
For example,
	\font a=cmr10
now appears in file basic.tex. If this font code has already been defined,
TEX will give an error message unless the file name is the same. (In the SAIL
versions of TEX, no error message will be given if this is a pre-loaded font
code, because the SAIL runtime routines forget all strings at the beginning
of the program and TEX doesn't know the names of the preloaded fonts. Thus you
must still be careful not to redefine the font codes used in Appendix B.)

You should still use \: to select the current font, since \font doesn't do
that.

If you refer to a font code (with \: or \mathrm, etc.) that has not yet been
defined, the error message "! Undefined font code." occurs. To recover, TEX
will expect to see a font file name (possibly preceded by = or ←); so you
can just hit carriage-return after this error message if you want the old
(pre-\font) conventions of TEX.

2. \copy <digit>
(Allowed wherever TEX expects a <box>.) This is just like \box <digit> except
that the value of \box <digit> is not reset to null. For example,
	\save1\copy0
makes \box1 a copy of \box0.

3. \unbox <digit>
(Allowed in vertical or horizontal mode but not math or display math mode.)
The contents of \box <digit> are "unglued" and appended to the current vertical
or horizontal list. In horizontal mode, the space factor is set to 1; in
vertical mode, no baseline correction will be made to the following box. The
contents of \box <digit> are reset to null. For example,
	\save1\hbox{\unbox1\box0}
appends \box 0 to the previous contents of \box 1 and destroys \box 0.
Note: You can't \unbox an \hbox in vertical mode or a \vbox in horizontal mode.

The potential uses of \unbox to produce multi-column format with balanced
columns are somewhat frightening--they might open Pandora's box.

4. \open <digit>=<filename>
(Allowed in any mode.)
This specifies a file to which your TEX program will be able to send characters
as output. Up to ten such files may be open at once. If the <digit> you specify
was previously used to open a file, that file will be closed immediately, so
be careful. The purpose of \open is to enable nice macro packages to be written
for indexes, tables of contents, cross-references, etc.

5. \send <digit>{<mark text>}
(Allowed in any mode.) As with \mark, all macros in the given text will be
expanded when TEX first sees this \send instruction, but \counts are not
expanded, nor are the names of control sequences following \def or \xdef or
\gdef. The text will eventually be written on the open file corresponding 
to <digit> (or on your terminal and on errors.tmp if no such file is open),
at the time of output;  at that time, \counts and \topmarks, etc. are expanded.
For example, suppose you say
	... Let us define a tree{\send 5{Tree, \count0.}} as ...
in some paragraph. The text "Tree, \count0." is invisibly attached to the word
"tree"; and if \count0 equals 25 when the formatted page containing this word
is output, the string "Tree, 25." will be sent (followed by <carriage-return>
and <line-feed>). If TEX control sequences appear in the text to be output, the
result is the same as you get when lists of tokens are displayed in TEX
error messages.
	Here's another example. Suppose you have said
		\open 5=refs.tex
and at some later point you say when \count3 = 21
	\xdef\cv{\count3}
	\send 5 {\def\tarj{\cv}}
	\advcount3
The result is to send "\def \tarj {21}" to file refs.tex, and to advance
\count3 to 22. Your input file could say "\input refs" near the beginning; then
the next time to TEX your file, a reference like "[\tarj]" will become "[21]".
The actual sending takes place when the page containing the \send gets output;
in this case \xdef was used to send the value of \count3 before it advanced.

6. \ifdimen <dimen> <relation> <dimen> {<true text>} \else {<false text>}
(Allowed in any mode.) Here <relation> is any of the three symbols <, >, =.
For example,
	\ifdimen .5wd3 > 2em{a}\else{b}
yields "a" if half the width of \box3 exceeds two ems in the current font,
otherwise it yields "b".

7. \parval<number> and \codeval<number> 
can be used whenever TEX is expecting a <number>; they specify the current
value of a TEX parameter or code (the values that are changed by \chpar and
\chcode).

8. \linebreak in horizontal mode forces a line break but not a page break
(so it's like half of \eject). \pagebreak in horizontal mode forces a page
break after the line that contains it, but not a line break (so it's like the
other half of \eject).

9. \let <control sequence> = <control sequence>
(in any mode) makes an alternate name valid for the present meaning of the
control sequence on the right. For example,
	\let\usefont=\:
makes it possible to redefine the control sequence \: (for example if you want
to use : as a one-character control sequence). And
	\let\finishpar=\par
	\def\par{\finishpar\hangindent 40pt}
sets up hanging indentation after all paragraphs (including those terminated
by double-blank lines).

10. \mskip <dimen> [plus <dimen>] [minus <dimen>]
in math mode gives glue that varies with the current style. The dimensions
must be given in terms of a new unit "mu" that is allowed only with \mskip.
One mu is 1/18 of a \quad in the current style. Thus, for example,
	\mskip 5mu plus 5mu
gives the spacing of a "thick space" in display style (cf. p. 81).

11. New parameters for things that used to be frozen into the code: 
	\chpar11="radsign", the 18-bit code that will be used for \sqrt
		(same format as used in \left\char, see p. 79). Default
		is '560760.
	\chpar12="rfudge", 1000 times the magnification factor used in
		computing "true" dimensions. Default is 1301 (XGP),
		1100 (Dover), 1000 (at Stanford when we get rid of the XGP).
		The output routine might also look at this parameter to scale
		the output, although this isn't implemented yet and the desired
		scale will probably be indicated by a spooling command in most
		cases.
	\chpar13="adjpen", penalty for adjacent lines being more than one step
		apart in the sequence (shrunk at least 50%, near normal,
		stretched at least 50%, stretched at least 100%. As in the
		case of double-hyphenation (\chpar3), you give the square of
		the desired penalty. Default is 3000.
	\chpar14="loose", causes paragraphs to be set this many lines longer
		than the optimal number (if you want to avoid widow lines in
		straight text), if possible. For example, \chpar14←1 makes
		subsequent paragraphs a line longer; \chpar14←-1 makes them a
		line shorter (if there's a way). Default is, of course, 0.
	\chpar15="jjpar". The new TEX justification routine tries first to
		break lines in a paragraph with no hyphenations, using jjpar
		instead of jpar to ferret out unfeasible breaks. If this fails,
		or if "loose" is nonzero, another attempt is made, trying all
		possible hyphenations, and using jpar. Default is 2. (A high
		value makes TEX accept badly stretched lines before trying to
		hyphenate.)
	\chpar16="uchyph". If nonzero, TEX will attempt to hyphenate words
		containing upper case letters, using the algorithm of
		Appendix H.  Default is 0.
	\chpar17="exhyph". The penalty for breaking after an explicit hyphen or
		dash (see rule e on p54). Default is 50.
	\chpar18,19,20, reserved for communication with special extensions
		in private versions of TEX.

12. New glue parameters in addition to \baselineskip, etc.:
	\spaceskip, if nonzero will be used for spaces instead of the values
		from the current font. If you say \spaceskip .3em plus .4em,
		the meaning of "em" at the time \spaceskip appears is used (it
		won't change when the em changes).
	\xspaceskip, like \spaceskip, but this is the glue used for spaces
		following periods, question marks, exclamation points (i.e.
		space factor 3).
	\parfillskip, is the glue automatically inserted at end of each
		paragraph.  This is the only \...skip parameter that is
		initially nonzero; it is initialized to \hfil. (At paragraph
		end, TEX removes the last item of the current horizontal list
		if it is glue, under the assumption that it was the space that
		is scanned before a blank line or before $$ causes the
		line-breaking routine to start. Then \penalty1000 and the
		current \parfillskip glue are appended.)  By giving this
		parameter nonzero space and controlling its stretchability and
		shrinkability, you can keep the final lines of your paragraphs
		from being too empty or too full.

13. \parshape n i1 l1 i2 l2 ... in ln
	where n is an integer and each ij or lj is a <dimen>, takes precedence
	over hanging indentation (of which it is a major generalization). The
	first n lines of each subsequent paragraph will be of the specified
	lengths and will have the specified indentations; lines after the nth
	will use the specifications for line n. To shut this off, type
	\parshape 0.  (This feature will not work sensibly in connection with 
	displayed equations, since TEX considers a displayed equation as if it
	breaks the paragraph into separate paragraphs.)

Note: A technical paper discussing all these bells and whistles of line
breaking is being prepared by Knuth and Plass for publication in SOFTWARE
Practice & Experience.